/**
 * 省市区 单条记录类型
 */
export interface IDictItem {
    id: number,
    createTime: string,
    updateTime: string,
    param: {},
    parentId: number,
    name: string,
    value: string,
    dictCode: null,
    hasChildren: boolean
}
/**
 * 省市区列表类型
 */
export type IDictList = IDictItem[]

/**
 * 查询表单数据类型
 */
export interface IFormData {
    hoscode?: string,
    hosname?: string,
    hostype?: string,
    provinceCode?: string,
    cityCode?: string,
    districtCode?: string,
    status?: number
}
/**
 * 医院列表请求参数类型
 */
export interface IHospitalListParams extends IFormData {
    page: number,
    limit: number
}
/**
 * 预约规则类型
 */
export interface IBookingRule {
    cycle: number,
    releaseTime: string,
    stopTime: string,
    quitDay: number,
    quitTime: string,
    rule: string[]
}
/**
 * 医院类型
 */
export interface IHospitalItem {
    id: string,
    createTime: string,
    updateTime: string,
    param: {
        hostypeString: string,
        fullAddress: string,
    },
    hoscode: string,
    hosname: string,
    hostype: number,
    provinceCode: string,
    cityCode: string,
    districtCode: string,
    address: string,
    logoData: string,
    intro: string,
    status: number,
    bookingRule: IBookingRule | null,
    route: string
}
// 医院列表类型
export type IHospitalList = IHospitalItem[]
// 请求医院列表响应结果类型
export interface IHospitalListResponse {
    content: IHospitalList,
    totalElements: number
}

/**
 * 医院详情响应体类型
 */
export interface IHospitalDetailResponse {
    bookingRule: IBookingRule,
    hospital: IHospitalItem
}

/**
 * 科室对象类型
 */
export interface IDepartmentItem {
    depcode: string,
    depname: string,
    children: IDepartmentList | null,
    disabled?: boolean
}
/**
 * 科室列表类型
 */
export type IDepartmentList = IDepartmentItem[]

export interface IScheduleItem {
    workDate: string,
    workDateMd: null,
    dayOfWeek: string,
    docCount: number,
    reservedNumber: number,
    availableNumber: number,
    status: null
}

export type IScheduleList = IScheduleItem[]
/**
 * 医院排班响应结果类型
 */
export interface IScheduleResponse {
    total: number,
    bookingScheduleList: IScheduleList,
    baseMap: {
        hosname: string
    }
}
/**
 * 排班医生对象类型
 */
export interface IDoctorItem {
    id: string,
    createTime: string,
    updateTime: string,
    param: {
        dayOfWeek: string,
        depname: string,
        hosname: string,
    },
    hoscode: string,
    depcode: string,
    title: string,
    docname: string,
    skill: string,
    workDate: string,
    workTime: number,
    reservedNumber: number,
    availableNumber: number,
    amount: number,
    status: number,
    hosScheduleId: string
}
/**
 * 排班医生列表类型
 */
export type IDoctorList = IDoctorItem[]